home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / PIMATCH.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  4.3 KB  |  150 lines

  1. 10  'PIMATCH : Pi-Section Matching Network  21 APR 95 rev. 29 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF
  4. 40  COLOR 7,0,1
  5. 50  PI=3.14159
  6. 60  E$=STRING$(80,32)
  7. 70  UL$=STRING$(80,205)
  8. 80  U1$="####.#"
  9. 90  DATA 1.9, 3.75, 7.15, 10.125, 14.175, 18.118, 21.225, 24.94, 28.85
  10. 100  FOR Z=1 TO 9:READ CF(Z):NEXT Z
  11. 110  '
  12. 120  '.....start
  13. 130  CLS
  14. 140  COLOR 15,2
  15. 150  PRINT " PI-SECTION MATCHING NETWORK";TAB(57);"by George Murphy VE3ERP ";
  16. 160  COLOR 1,0:PRINT STRING$(80,"<0xDF!>");
  17. 170  COLOR 7,0
  18. 180  '
  19. 190  '.....diagram
  20. 200  CO=18   'column
  21. 210  COLOR 0,7:LOCATE 3
  22. 220  LOCATE ,CO:PRINT "                      L                      "
  23. 230  LOCATE ,CO:PRINT "  VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDORORORORORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR  "
  24. 240  LOCATE ,CO:PRINT "  CALL       C1CALL                   CALLC2       CALL  "
  25. 250  LOCATE ,CO:PRINT " R1        THENINSTRTHEN                 THENINSTRTHEN        R2 "
  26. 260  LOCATE ,CO:PRINT "  CALL         CALL                   CALL         CALL  "
  27. 270  LOCATE ,CO:PRINT "  CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'  "
  28. 280  COLOR 7,0
  29. 290  LOCATE 11:PRINT UL$;
  30. 300  '
  31. 310  COLOR 0,7:LOCATE CSRLIN,21
  32. 320  PRINT " Press 1 to continue or 0 to EXIT..... "
  33. 330  COLOR 7,0
  34. 340  Z$=INKEY$:IF Z$=""THEN 340
  35. 350  IF Z$="0"THEN CLS:RUN EX$
  36. 360  IF Z$="1"THEN 380
  37. 370  GOTO 340
  38. 380  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  39. 390  PRINT " Enter the two impedances to be matched.................."
  40. 400  PRINT "  ( insert a comma between the two values, e.g. 1200,52 )"
  41. 410  INPUT "   ENTER: Two impedances, in ohms, in any order..........";R1,R2
  42. 420  IF R2>R1 THEN SWAP R1,R2
  43. 430  COLOR 0,7
  44. 440  LOCATE 6,10:PRINT "impedance";R1;"-"
  45. 450  LOCATE 6,55:PRINT R2;"- impedance"
  46. 460  COLOR 7,0
  47. 470  VIEW PRINT 12 TO 24:CLS:VIEW PRINT
  48. 480  LOCATE 12
  49. 490  T=7    'tab
  50. 500  PRINT TAB(T);
  51. 510  PRINT "Enter a Q factor for the circuit, bearing in mind that the lower the"
  52. 520  PRINT TAB(T);
  53. 530  PRINT "the Q the more practical the component values become. Q factors of"
  54. 540  PRINT TAB(T);
  55. 550  PRINT "from 1 to 5 are are generally acceptable for matching solid-state"
  56. 560  PRINT TAB(T);
  57. 570  PRINT "stages or devices. Q factors of from 5 to 15 are suitable for most"
  58. 580  PRINT TAB(T);
  59. 590  PRINT "other applications. You can change the Q factor later in the program"
  60. 600  PRINT TAB(T);
  61. 610  PRINT "if you wish."
  62. 620  PRINT
  63. 630  PRINT TAB(T);
  64. 640  INPUT "ENTER: Q factor..................";Q
  65. 650  VIEW PRINT 12 TO 24:CLS:VIEW PRINT
  66. 660  IF R1/R2<1 THEN 740
  67. 670   MIN=SQR(R1/R2-1)
  68. 680   IF Q>MIN THEN 740
  69. 690   QQ=INT(MIN)+1
  70. 700   BEEP:LOCATE 12:PRINT " The minimum possible Q for this configuration is";QQ
  71. 710   PRINT " Press any key to continue...................."
  72. 720   IF INKEY$=""THEN 720
  73. 730   Q=QQ
  74. 740  Q1=(R1*Q-SQR(R1*R2*Q^2-(R1-R2)^2))/(R1-R2)
  75. 750  Q2=Q-Q1
  76. 760  XC1=R1/Q1
  77. 770  XC2=R2/Q2
  78. 780  COLOR 0,T
  79. 790  LOCATE 7,23:PRINT USING U1$;XC1;:PRINT " - Xc"
  80. 800  LOCATE 7,43:PRINT USING U1$;XC2;:PRINT " - Xc"
  81. 810  XL=R1*Q/(Q1^2+1)
  82. 820  LOCATE 5,35:PRINT USING U1$;XL;:PRINT " - Xl"
  83. 830  COLOR 7,0
  84. 840  LOCATE 9,2:PRINT "( Xl = inductive reactance )"
  85. 850  LOCATE 9,51:PRINT "( Xc = capacitive reactance )"
  86. 860  COLOR 15,3
  87. 870  LOCATE 11,22:PRINT " COMPONENT VALUES FOR A Q FACTOR OF";Q
  88. 880  COLOR 7,0
  89. 890  '
  90. 900  VIEW PRINT 12 TO 24:CLS:VIEW PRINT:LOCATE 13
  91. 910  PRINT " Do you want values of C1, C2, and L for a specific frequency";
  92. 920  PRINT "    (y/n)"
  93. 930  Z$=INKEY$
  94. 940  IF Z$="n"THEN 1110
  95. 950  IF Z$="y"THEN 970
  96. 960  GOTO 930
  97. 970  VIEW PRINT 12 TO 24:CLS:VIEW PRINT:LOCATE 13
  98. 980  INPUT " ENTER: Frequency in MHz..........";F
  99. 990  VIEW PRINT 12 TO 24:CLS:VIEW PRINT:LOCATE 13
  100. 1000  F=F*10^6                             'frequency in Hz
  101. 1010  C1=(1/(2*PI*F*XC1))*10^12            'capacity in pF
  102. 1020  C2=(1/(2*PI*F*XC2))*10^12            'capacity in pF
  103. 1030  L=(XL/(2*PI*F))*10^6                 'inductance in >H * 1000
  104. 1040  PRINT " Frequency......";USING "###.###";F/10^6;:PRINT " Mhz"
  105. 1050  PRINT " Capacitor C1...";USING U1$;C1;:PRINT " pF"
  106. 1060  PRINT " Capacitor C2...";USING U1$;C2;:PRINT " pF"
  107. 1070  PRINT " Inductor L.....";USING U1$;L;:PRINT " >H"
  108. 1080  PRINT UL$;
  109. 1090  GOSUB 1370:GOTO 1110
  110. 1100  '
  111. 1110  '.....print table
  112. 1120  VIEW PRINT 12 TO 24:CLS:VIEW PRINT:LOCATE 12
  113. 1130  PRINT TAB(6);"MHz";TAB(20);"C1 (pF)";TAB(40);"C2 (pF)";TAB(61);"L (>H)"
  114. 1140  PRINT UL$;
  115. 1150  FOR Z= 1 TO 9
  116. 1160  F=CF(Z)*10^6                         'frequency in Hz
  117. 1170  C1=(1/(2*PI*F*XC1))*10^12            'capacity in pF
  118. 1180  C2=(1/(2*PI*F*XC2))*10^12            'capacity in pF
  119. 1190  L=(XL/(2*PI*F))*10^6                 'inductance in >H * 1000
  120. 1200  PRINT TAB(3);USING "###.###";F/10^6;
  121. 1210  PRINT TAB(21);USING U1$;C1;
  122. 1220  PRINT TAB(41);USING U1$;C2;
  123. 1230  PRINT TAB(60);USING U1$;L
  124. 1240  IF Z=1 THEN UH=L
  125. 1250  NEXT Z
  126. 1260  COLOR 0,7:LOCATE CSRLIN,17
  127. 1270  INPUT " ENTER: <0> if OK - or - ENTER: New Q factor ";Z$
  128. 1280  COLOR 7,0
  129. 1290  IF VAL(Z$)=0 THEN 1320
  130. 1300  IF VAL(Z$)>0 THEN Q=VAL(Z$):GOTO 650
  131. 1310  GOTO 1270
  132. 1320  LOCATE CSRLIN-1:PRINT E$;
  133. 1330  GOSUB 1370
  134. 1340  GOTO 120   'start
  135. 1350  END
  136. 1360  '
  137. 1370  'HARDCOPY
  138. 1380  GOSUB 1490:LOCATE 25,2:COLOR 14,6
  139. 1390  PRINT " Press 1 to print screen, 2 to print screen & ";
  140. 1400  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  141. 1410  Z$=INKEY$:IF Z$="3"THEN GOSUB 1490:RETURN
  142. 1420  IF Z$="1"OR Z$="2"THEN GOSUB 1490:GOTO 1440
  143. 1430  GOTO 1410
  144. 1440  FOR QX=1 TO 24:FOR QY=1 TO 80
  145. 1450  LPRINT CHR$(SCREEN(QX,QY));
  146. 1460  NEXT QY:NEXT QX
  147. 1470  IF Z$="2"THEN LPRINT CHR$(12)
  148. 1480  GOTO 1380
  149. 1490  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  150.